1. Field of Invention
The present invention pertains to the field of information management systems. More particularly, this invention relates to maintaining works-in-progress in an information management system.
2. Art Background
Information management systems including database systems are commonly employed in a wide variety of information management contexts. Typically, such information management systems provide persistent data storage for a set of one or more applications that perform work on the persistently stored data. Such applications usually interact with the persistently stored data using database transactions as a unit of work. Typically, such database transactions are required to satisfy the properties of atomicity, consistency, and durability along with a degree of isolation between transactions.
A classic example of the importance of such required properties of database transactions is found in the context of information management systems used in banking. For example, a banking database may include a record for each bank account wherein each record includes an account balance attribute that indicates the balance in the corresponding bank account. An example application for a banking system is an application for transferring funds from a first bank account to a second bank account. Such an application usually generates a database transaction that updates the account balance attribute of the first bank account to indicate a new lower account balance and that updates the account balance attribute of the second bank account to indicate a new higher account balance.
If such a database transaction is atomic, then no other applications that interact with the banking database can read the updated account balance of the first bank account before the second bank account is updated. If such a database transaction is not atomic, then it is possible for the overall sum of account balances in the system to appear to be either higher or lower than the actual account balances depending on the timing of the database transactions. As a consequence, it is critical for data integrity that such database transactions satisfy the property of atomicity and provide isolation between transactions.
One prior method for ensuring the isolation of a particular database transaction is to lock out database transactions from other applications while the particular database transaction is underway. For example, access to an entire database may be locked, or access to particular tables in a data base, or access to particular records being updated may be locked. Such lockouts are typically not noticeable by users if the database transactions are relatively brief.
However, in complex information management systems, it is often necessary to make data changes to a variety of data tables contained in a database. Often such changes include multiple pieces of work that must be completed by the user before it is appropriate for the data changes to be made globally accessible to other users and applications. Such an extended operation on a database system may be referred to as a work-in-progress. Such a work-in-progress may require time intervals of minutes, hours, or even days to complete. Yet such works-in-progress usually require some sort of controls for maintaining data integrity and consistency. Prior control methods that involve data locking are unacceptable for work-in-progress applications due to the extended time required to conduct such works-in-progress.